{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "635d8ebb",
   "metadata": {},
   "source": [
    "# LangGraph-Building-Graphs\n",
    "\n",
    "- Author: [Donghak Lee](https://github.com/stsr1284)\n",
    "- Peer Review: \n",
    "- Proofread : [Chaeyoon Kim](https://github.com/chaeyoonyunakim)\n",
    "- This is a part of [LangChain Open Tutorial](https://github.com/LangChain-OpenTutorial/LangChain-OpenTutorial)\n",
    "\n",
    "[![Open in Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/LangChain-OpenTutorial/LangChain-OpenTutorial/blob/main/17-LangGraph/02-Structures/01-LangGraph-Building-Graphs.ipynb)[![Open in GitHub](https://img.shields.io/badge/Open%20in%20GitHub-181717?style=flat-square&logo=github&logoColor=white)](https://github.com/LangChain-OpenTutorial/LangChain-OpenTutorial/blob/main/17-LangGraph/02-Structures/01-LangGraph-Building-Graphs.ipynb)\n",
    "## Overview\n",
    "\n",
    "In this tutorial, you will learn how to use ```LangGraph``` to create foundational graph structures.\n",
    "\n",
    "You will learn the following:\n",
    "\n",
    "1. The steps to define a graph\n",
    "2. How to use conditional edges and different flow variations\n",
    "3. Re-search graph structure\n",
    "4. Multi-LLM graph structure\n",
    "5. Query rewrite graph structure\n",
    "6. SQL RAG graph structure\n",
    "\n",
    "### Table of Contents\n",
    "\n",
    "- [Overview](#overview)\n",
    "- [Environment Setup](#environment-setup)\n",
    "- [Steps for Defining a Graph](#steps-for-defining-a-graph)\n",
    "- [Various Graph Structures  ](#various-graph-structures)\n",
    "\n",
    "### References\n",
    "\n",
    "- [LangChain runnables Graph](https://python.langchain.com/api_reference/core/runnables/langchain_core.runnables.graph.Graph.html#)\n",
    "- [LangGraph Graph Definitions](https://langchain-ai.github.io/langgraph/reference/graphs/)\n",
    "----"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c6c7aba4",
   "metadata": {},
   "source": [
    "## Environment Setup\n",
    "\n",
    "Set up the environment. You may refer to [Environment Setup](https://wikidocs.net/257836) for more details.\n",
    "\n",
    "**[Note]**\n",
    "- ```langchain-opentutorial``` is a package that provides a set of easy-to-use environment setup, useful functions and utilities for tutorials. \n",
    "- You can check out the [```langchain-opentutorial```](https://github.com/LangChain-OpenTutorial/langchain-opentutorial-pypi) for more details."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "21943adb",
   "metadata": {},
   "outputs": [],
   "source": [
    "%%capture --no-stderr\n",
    "%pip install langchain-opentutorial"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "f25ec196",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Install required packages\n",
    "from langchain_opentutorial import package\n",
    "\n",
    "package.install(\n",
    "    [\n",
    "        \"langsmith\",\n",
    "        \"langchain_core\",\n",
    "        \"langgraph\",\n",
    "        \"typing\",\n",
    "        \"IPython\",\n",
    "    ],\n",
    "    verbose=False,\n",
    "    upgrade=False,\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "690a9ae0",
   "metadata": {},
   "source": [
    "You can set API keys in a ```.env``` file or set them manually.\n",
    "\n",
    "[Note] If you’re not using the ```.env``` file, no worries! Just enter the keys directly in the cell below, and you’re good to go."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "327c2c7c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Environment variables have been set successfully.\n"
     ]
    }
   ],
   "source": [
    "# Set environment variables\n",
    "from langchain_opentutorial import set_env\n",
    "\n",
    "set_env(\n",
    "    {\n",
    "        \"OPENAI_API_KEY\": \"\",\n",
    "        \"LANGCHAIN_API_KEY\": \"\",\n",
    "        \"LANGCHAIN_TRACING_V2\": \"true\",\n",
    "        \"LANGCHAIN_ENDPOINT\": \"https://api.smith.langchain.com\",\n",
    "        \"LANGCHAIN_PROJECT\": \"LangGraph-Building-Graphs\",\n",
    "    }\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "30f9e8e0",
   "metadata": {},
   "source": [
    "You can alternatively set API keys such as ```OPENAI_API_KEY``` in a ```.env``` file and load them.\n",
    "\n",
    "[Note] This is not necessary if you've already set the required API keys in previous steps."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "1146f14a",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Load API keys from .env file\n",
    "from dotenv import load_dotenv\n",
    "\n",
    "load_dotenv(override=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aa00c3f4",
   "metadata": {},
   "source": [
    "## Steps for Defining a Graph  \n",
    "To define a graph with ```LangGraph```, you need to define **State** , **Node** , and **Graph** , and then compile them.  \n",
    "\n",
    "If necessary, you can flexibly adjust the graph flow by adding conditional edges to nodes using ```add_conditional_edges()```."
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f43815f9",
   "metadata": {},
   "source": [
    "### Define State  \n",
    "\n",
    "**State** defines the shared state between the nodes in the graph.  \n",
    "\n",
    "It uses the ```TypedDict``` format and adds metadata to type hints using ```Annotated``` to provide detailed information."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "c5d0c72f",
   "metadata": {},
   "outputs": [],
   "source": [
    "from typing import TypedDict, Annotated, List\n",
    "from langchain_core.documents import Document\n",
    "import operator\n",
    "\n",
    "\n",
    "# Define State\n",
    "class GraphState(TypedDict):\n",
    "    context: Annotated[List[Document], operator.add]\n",
    "    answer: Annotated[List[Document], operator.add]\n",
    "    question: Annotated[str, \"user question\"]\n",
    "    sql_query: Annotated[str, \"sql query\"]\n",
    "    binary_score: Annotated[str, \"binary score yes or no\"]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "83fcc45c",
   "metadata": {},
   "source": [
    "### Define Node  \n",
    "Define the nodes that process each step.  \n",
    "\n",
    "These are usually implemented as Python functions, with **State** as both input and output."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "18d9292e",
   "metadata": {},
   "outputs": [],
   "source": [
    "def retrieve(state: GraphState) -> GraphState:\n",
    "    # retrieve: search\n",
    "    documents = \"searched documents\"\n",
    "    return {\"context\": documents}\n",
    "\n",
    "\n",
    "def rewrite_query(state: GraphState) -> GraphState:\n",
    "    # Query Transform: rewrite query\n",
    "    documents = \"searched documents\"\n",
    "    return GraphState(context=documents)\n",
    "\n",
    "\n",
    "def llm_gpt_execute(state: GraphState) -> GraphState:\n",
    "    # LLM Execution\n",
    "    answer = \"GPT generated answer\"\n",
    "    return GraphState(answer=answer)\n",
    "\n",
    "\n",
    "def llm_claude_execute(state: GraphState) -> GraphState:\n",
    "    # LLM Execution\n",
    "    answer = \"Claude generated answer\"\n",
    "    return GraphState(answer=answer)\n",
    "\n",
    "\n",
    "def relevance_check(state: GraphState) -> GraphState:\n",
    "    # Relevance Check\n",
    "    binary_score = \"Relevance Score\"\n",
    "    return GraphState(binary_score=binary_score)\n",
    "\n",
    "\n",
    "def sum_up(state: GraphState) -> GraphState:\n",
    "    # sum_up: Aggregate Results\n",
    "    answer = \"Aggregate Results\"\n",
    "    return GraphState(answer=answer)\n",
    "\n",
    "\n",
    "def search_on_web(state: GraphState) -> GraphState:\n",
    "    # Search on Web\n",
    "    documents = state[\"context\"] = \"existing documents\"\n",
    "    searched_documents = \"searched documents\"\n",
    "    documents += searched_documents\n",
    "    return GraphState(context=documents)\n",
    "\n",
    "\n",
    "def get_table_info(state: GraphState) -> GraphState:\n",
    "    # Get Table Info\n",
    "    table_info = \"table information\"\n",
    "    return GraphState(context=table_info)\n",
    "\n",
    "\n",
    "def generate_sql_query(state: GraphState) -> GraphState:\n",
    "    # Make SQL Query\n",
    "    sql_query = \"SQL query\"\n",
    "    return GraphState(sql_query=sql_query)\n",
    "\n",
    "\n",
    "def execute_sql_query(state: GraphState) -> GraphState:\n",
    "    # Execute SQL Query\n",
    "    sql_result = \"SQL result\"\n",
    "    return GraphState(context=sql_result)\n",
    "\n",
    "\n",
    "def validate_sql_query(state: GraphState) -> GraphState:\n",
    "    # Validate SQL Query\n",
    "    binary_score = \"SQL query validation result\"\n",
    "    return GraphState(binary_score=binary_score)\n",
    "\n",
    "\n",
    "def handle_error(state: GraphState) -> GraphState:\n",
    "    # Error Handling\n",
    "    error = \"error occurred\"\n",
    "    return GraphState(context=error)\n",
    "\n",
    "\n",
    "def decision(state: GraphState) -> GraphState:\n",
    "    # Decision Making\n",
    "    decision = \"decision\"\n",
    "    # Additional logic can be added here.\n",
    "\n",
    "    if state[\"binary_score\"] == \"yes\":\n",
    "        return \"exit\"\n",
    "    else:\n",
    "        return \"re_search\""
   ]
  },
  {
   "cell_type": "markdown",
   "id": "175c301a",
   "metadata": {},
   "source": [
    "### Define Graph  \n",
    "Connect nodes with **Edge** .  \n",
    "\n",
    "Using conditional edges, you can determine the next **Node** to execute based on the current **State** . "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "98cb0550",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import Image, display\n",
    "from langgraph.graph import END, StateGraph\n",
    "from langgraph.checkpoint.memory import MemorySaver\n",
    "\n",
    "# Import StateGraph and END from langgraph.graph.\n",
    "workflow = StateGraph(GraphState)\n",
    "\n",
    "# Add nodes.\n",
    "workflow.add_node(\"retrieve\", retrieve)\n",
    "workflow.add_node(\"GPT_request\", llm_gpt_execute)\n",
    "workflow.add_node(\"GPT_relevance_check\", relevance_check)\n",
    "workflow.add_node(\"Aggregation_results\", sum_up)\n",
    "\n",
    "# Connect nodes.\n",
    "workflow.add_edge(\"retrieve\", \"GPT_request\")\n",
    "workflow.add_edge(\"GPT_request\", \"GPT_relevance_check\")\n",
    "workflow.add_edge(\"GPT_relevance_check\", \"Aggregation_results\")\n",
    "workflow.add_edge(\"Aggregation_results\", END)\n",
    "\n",
    "# Set the entry point.\n",
    "workflow.set_entry_point(\"retrieve\")\n",
    "\n",
    "# Set up memory storage for recording.\n",
    "memory = MemorySaver()\n",
    "\n",
    "# Compile the graph.\n",
    "app = workflow.compile(checkpointer=memory)\n",
    "\n",
    "# Visualize the graph\n",
    "display(Image(app.get_graph().draw_mermaid_png()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "90d64bda",
   "metadata": {},
   "source": [
    "## Various Graph Structures  \n",
    "\n",
    "In this section, you will learn about different graph structures using conditional edges.\n",
    "\n",
    "The graph structures you will learn are as follows:\n",
    "1. Re-search graph structure\n",
    "2. Multi-LLM graph structure\n",
    "3. Query rewrite graph structure\n",
    "4. SQL RAG graph structure"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f06c595c",
   "metadata": {},
   "source": [
    "### Re-search Graph Structure\n",
    "The Re-search Graph inspects the output from the GPT model and selects either ```re_search``` or ```exit```. This allows you to obtain more relevant results for the query.\n",
    "\n",
    "The execution flow is as follows:\n",
    "\n",
    "- A conditional edge is added to the ```Aggregation_results``` node.\n",
    "- The ```GPT_relevance_check``` node checks the relevance of the output from the ```GPT_request``` node.  \n",
    "- Based on the result of the relevance check, the ```Aggregation_results``` node decides whether to ```re_search``` or ```exit``` using the **State** information."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "2882792f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import StateGraph and END from langgraph.graph.\n",
    "workflow = StateGraph(GraphState)\n",
    "\n",
    "# Add nodes.\n",
    "workflow.add_node(\"retrieve\", retrieve)\n",
    "workflow.add_node(\"GPT_request\", llm_gpt_execute)\n",
    "workflow.add_node(\"GPT_relevance_check\", relevance_check)\n",
    "workflow.add_node(\"Aggregation_results\", sum_up)\n",
    "\n",
    "# Connect nodes.\n",
    "workflow.add_edge(\"retrieve\", \"GPT_request\")\n",
    "workflow.add_edge(\"GPT_request\", \"GPT_relevance_check\")\n",
    "workflow.add_edge(\"GPT_relevance_check\", \"Aggregation_results\")\n",
    "\n",
    "# Add conditional edges.\n",
    "workflow.add_conditional_edges(\n",
    "    \"Aggregation_results\",  # Pass the result from the relevance check node to the decision function.\n",
    "    decision,\n",
    "    {\n",
    "        \"re_search\": \"retrieve\",  # If the relevance check result is ambiguous, generate the answer again.\n",
    "        \"exit\": END,  # If relevant, exit.\n",
    "    },\n",
    ")\n",
    "\n",
    "# Set the entry point.\n",
    "workflow.set_entry_point(\"retrieve\")\n",
    "\n",
    "# Set up memory storage for recording.\n",
    "memory = MemorySaver()\n",
    "\n",
    "# Compile the graph.\n",
    "app = workflow.compile(checkpointer=memory)\n",
    "\n",
    "# Visualize the graph\n",
    "display(Image(app.get_graph().draw_mermaid_png()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c7a47eb5",
   "metadata": {},
   "source": [
    "### Multi-LLM Graph Structure  \n",
    "The Multi-LLM graph uses various LLM models to generate results.\n",
    "\n",
    "This allows for obtaining a variety of answers."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "2728777d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import StateGraph and END from langgraph.graph.\n",
    "workflow = StateGraph(GraphState)\n",
    "\n",
    "# Add nodes.\n",
    "workflow.add_node(\"retrieve\", retrieve)\n",
    "workflow.add_node(\"GPT_request\", llm_gpt_execute)\n",
    "workflow.add_node(\"GPT_relevance_check\", relevance_check)\n",
    "\n",
    "# add a new node for Claude\n",
    "workflow.add_node(\"Claude_request\", llm_claude_execute)\n",
    "# add a new node for checking Claude's relevance\n",
    "workflow.add_node(\"Claude_relevance_check\", relevance_check)\n",
    "\n",
    "workflow.add_node(\"Aggregation_results\", sum_up)\n",
    "\n",
    "# Connect nodes.\n",
    "workflow.add_edge(\"retrieve\", \"GPT_request\")\n",
    "workflow.add_edge(\"GPT_request\", \"GPT_relevance_check\")\n",
    "workflow.add_edge(\"GPT_relevance_check\", \"Aggregation_results\")\n",
    "\n",
    "# connect the new node to the entry point\n",
    "workflow.add_edge(\"retrieve\", \"Claude_request\")\n",
    "# connect the \"Claude_request\" node to the \"Claude_relevance_check\"\n",
    "workflow.add_edge(\"Claude_request\", \"Claude_relevance_check\")\n",
    "workflow.add_edge(\"Claude_relevance_check\", \"Aggregation_results\")\n",
    "workflow.add_edge(\"Aggregation_results\", END)\n",
    "\n",
    "# Set the entry point.\n",
    "workflow.set_entry_point(\"retrieve\")\n",
    "\n",
    "# Set up memory storage for recording.\n",
    "memory = MemorySaver()\n",
    "\n",
    "# Compile the graph.\n",
    "app = workflow.compile(checkpointer=memory)\n",
    "\n",
    "# Visualize the graph\n",
    "display(Image(app.get_graph().draw_mermaid_png()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "833ae8ae",
   "metadata": {},
   "source": [
    "### Query Rewrite Graph  \n",
    "The Query Rewrite Graph is a structure that adds the ```rewrite_query``` node to the Re-search Graph structure.  \n",
    "\n",
    "The rewrite node for the query rewrites the question to obtain more refined results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "ee425c08",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import StateGraph and END from langgraph.graph.\n",
    "workflow = StateGraph(GraphState)\n",
    "\n",
    "# Add nodes.\n",
    "workflow.add_node(\"retrieve\", retrieve)\n",
    "\n",
    "# add a new node for rewriting the query\n",
    "workflow.add_node(\"rewrite_query\", rewrite_query)\n",
    "workflow.add_node(\"GPT_request\", llm_gpt_execute)\n",
    "workflow.add_node(\"Claude_request\", llm_claude_execute)\n",
    "workflow.add_node(\"GPT_relevance_check\", relevance_check)\n",
    "workflow.add_node(\"Claude_relevance_check\", relevance_check)\n",
    "workflow.add_node(\"Aggregation_results\", sum_up)\n",
    "\n",
    "# Connect nodes.\n",
    "workflow.add_edge(\"retrieve\", \"GPT_request\")\n",
    "workflow.add_edge(\"retrieve\", \"Claude_request\")\n",
    "workflow.add_edge(\"rewrite_query\", \"retrieve\")\n",
    "workflow.add_edge(\"GPT_request\", \"GPT_relevance_check\")\n",
    "workflow.add_edge(\"GPT_relevance_check\", \"Aggregation_results\")\n",
    "workflow.add_edge(\"Claude_request\", \"Claude_relevance_check\")\n",
    "workflow.add_edge(\"Claude_relevance_check\", \"Aggregation_results\")\n",
    "\n",
    "# Add conditional edges. (4)\n",
    "workflow.add_conditional_edges(\n",
    "    \"Aggregation_results\",  # Pass the result from the relevance check node to the decision function.\n",
    "    decision,\n",
    "    {\n",
    "        \"re_search\": \"rewrite_query\",  # If the relevance check result is ambiguous, generate the answer again.\n",
    "        \"exit\": END,  # If relevant, exit.\n",
    "    },\n",
    ")\n",
    "\n",
    "# Set the entry point.\n",
    "workflow.set_entry_point(\"retrieve\")\n",
    "\n",
    "# Set up memory storage for recording.\n",
    "memory = MemorySaver()\n",
    "\n",
    "# Compile the graph.\n",
    "app = workflow.compile(checkpointer=memory)\n",
    "\n",
    "# Visualize the graph\n",
    "display(Image(app.get_graph().draw_mermaid_png()))"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "697975bf",
   "metadata": {},
   "source": [
    "### SQL RAG Graph Structure  \n",
    "The SQL RAG Graph is a structure that combines Conventional RAG with SQL RAG. \n",
    "\n",
    "It uses rewrite nodes for the question and query to generate precise results based on the requirements."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "f380ecaa",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Import StateGraph and END from langgraph.graph\n",
    "workflow = StateGraph(GraphState)\n",
    "\n",
    "# Add nodes.\n",
    "workflow.add_node(\"retrieve\", retrieve)\n",
    "workflow.add_node(\"rewrite_query\", rewrite_query)\n",
    "workflow.add_node(\"rewrite_question\", rewrite_query)\n",
    "workflow.add_node(\"GPT_request\", llm_gpt_execute)\n",
    "workflow.add_node(\"GPT_relevance_check\", relevance_check)\n",
    "workflow.add_node(\"Aggregation_results\", sum_up)\n",
    "workflow.add_node(\"get_table_info\", get_table_info)\n",
    "workflow.add_node(\"generate_sql_query\", generate_sql_query)\n",
    "workflow.add_node(\"execute_sql_query\", execute_sql_query)\n",
    "workflow.add_node(\"validate_sql_query\", validate_sql_query)\n",
    "\n",
    "# Connect nodes.\n",
    "workflow.add_edge(\"retrieve\", \"get_table_info\")\n",
    "workflow.add_edge(\"get_table_info\", \"generate_sql_query\")\n",
    "workflow.add_edge(\"generate_sql_query\", \"execute_sql_query\")\n",
    "workflow.add_edge(\"execute_sql_query\", \"validate_sql_query\")\n",
    "\n",
    "workflow.add_conditional_edges(\n",
    "    \"validate_sql_query\",\n",
    "    decision,\n",
    "    {\n",
    "        \"QUERY ERROR\": \"rewrite_query\",\n",
    "        \"UNKNOWN MEANING\": \"rewrite_question\",\n",
    "        \"PASS\": \"GPT_request\",\n",
    "    },\n",
    ")\n",
    "\n",
    "workflow.add_edge(\"rewrite_query\", \"execute_sql_query\")\n",
    "workflow.add_edge(\"rewrite_question\", \"rewrite_query\")\n",
    "workflow.add_edge(\"GPT_request\", \"GPT_relevance_check\")\n",
    "workflow.add_edge(\"GPT_relevance_check\", \"Aggregation_results\")\n",
    "workflow.add_edge(\"Aggregation_results\", END)\n",
    "\n",
    "# Set the entry point.\n",
    "workflow.set_entry_point(\"retrieve\")\n",
    "\n",
    "# Set up memory storage for recording.\n",
    "memory = MemorySaver()\n",
    "\n",
    "# Compile the graph.\n",
    "app = workflow.compile(checkpointer=memory)\n",
    "\n",
    "# Visualize the graph\n",
    "display(Image(app.get_graph().draw_mermaid_png()))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "langchain-opentutorial-k6AU65mE-py3.11",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.11"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
